/**
 * 导航栏工具函数
 * 用于获取缓存的导航栏高度信息
 */

/**
 * 获取缓存的导航栏高度信息
 * @returns {Object|null} 导航栏高度信息对象或null
 */
export function getCachedNavbarHeight() {
  try {
    const cachedData = uni.getStorageSync('navbarHeight')
    if (cachedData && cachedData.timestamp) {
      // 检查缓存是否过期（24小时）
      const isExpired = Date.now() - cachedData.timestamp > 24 * 60 * 60 * 1000
      if (!isExpired) {
        return cachedData
      }
    }
    return null
  } catch (error) {
    console.error('获取缓存的导航栏高度失败:', error)
    return null
  }
}

/**
 * 获取导航栏总高度（状态栏 + 导航栏）
 * @returns {number} 总高度（px）
 */
export function getNavbarTotalHeight() {
  const cachedData = getCachedNavbarHeight()
  if (cachedData) {
    return cachedData.totalHeight
  }
  
  // 如果缓存不存在，返回默认值
  return 88 // 默认状态栏高度(44) + 导航栏高度(44)
}

/**
 * 获取导航栏高度（不包含状态栏）
 * @returns {number} 导航栏高度（px）
 */
export function getNavbarHeight() {
  const cachedData = getCachedNavbarHeight()
  if (cachedData) {
    return cachedData.navbarHeight
  }
  
  // 如果缓存不存在，返回默认值
  return 44
}

/**
 * 获取状态栏高度
 * @returns {number} 状态栏高度（px）
 */
export function getStatusBarHeight() {
  const cachedData = getCachedNavbarHeight()
  if (cachedData) {
    return cachedData.statusBarHeight
  }
  
  // 如果缓存不存在，返回默认值
  return 44
}

/**
 * 获取胶囊按钮高度
 * @returns {number} 胶囊按钮高度（px）
 */
export function getCapsuleHeight() {
  const cachedData = getCachedNavbarHeight()
  if (cachedData) {
    return cachedData.capsuleHeight
  }
  
  // 如果缓存不存在，返回默认值
  return 32
}

/**
 * 获取导航栏总高度的rpx值
 * @returns {string} 总高度（rpx）
 */
export function getNavbarTotalHeightRpx() {
  const totalHeight = getNavbarTotalHeight()
  return (totalHeight * 2) + 'rpx' // 1px = 2rpx
}

export function getNavbarTotalHeightRpx10() {
  const totalHeight = getNavbarTotalHeight()
  return ((totalHeight + 10) * 2) + 'rpx' // 1px = 2rpx
}

/**
 * 获取导航栏高度的rpx值
 * @returns {string} 导航栏高度（rpx）
 */
export function getNavbarHeightRpx() {
  const navbarHeight = getNavbarHeight()
  return (navbarHeight * 2) + 'rpx' // 1px = 2rpx
}

/**
 * 检查导航栏高度缓存是否有效
 * @returns {boolean} 缓存是否有效
 */
export function isNavbarHeightCacheValid() {
  const cachedData = getCachedNavbarHeight()
  return cachedData !== null
}

/**
 * 清除导航栏高度缓存
 */
export function clearNavbarHeightCache() {
  try {
    uni.removeStorageSync('navbarHeight')
    console.log('导航栏高度缓存已清除')
  } catch (error) {
    console.error('清除导航栏高度缓存失败:', error)
  }
}
